package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.OmcExpenseItem;
import com.csun.cmny.provider.model.dto.expenseItem.ExpenseItemSelectDto;
import com.csun.cmny.provider.model.vo.expenItem.ExpenseItemTheVo;

import java.util.List;

public interface OmcExpenseItemService extends IService<OmcExpenseItem> {

    /**
     * 增加消费项目使用次数
     * @param: [idList]
     * @return: java.lang.Integer
     */
    Integer addUsedTimes(List<Long> idList);

    /**
     * 减少消费项目使用次数
     * @param: [idList]
     * @return: java.lang.Integer
     */
    Integer subUsedTimes(List<Long> idList);

    /**
     * 消费项目-保存
     *
     * @param: omcExpenseItem loginAuthDto
     * @return: Integer
     */
    Integer saveExpenseItem(OmcExpenseItem omcExpenseItem, LoginAuthDto loginAuthDto);

    /**
     * 消费项目-删除
     *
     * @param: [expenseItemId, loginAuthDto]
     * @return: java.lang.Integer
     */
    Integer deleteExpenseItemById(Long expenseItemId, LoginAuthDto loginAuthDto);

    /**
     * 根据消费项目id集合查询消费项目
     * @param: [idList]
     * @return: java.util.List<com.csun.cmny.provider.model.domain.OmcExpenseItem>
     */
    List<OmcExpenseItem> selectByIdList(List<Long> idList);

    List<ExpenseItemTheVo> selectExpenItem(ExpenseItemSelectDto expenseItemSelectDto);
}
